package com.ruoyi.repayment.pojo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 产品对象 loan_product
 * 
 * @author ruoyi
 * @date 2022-12-15
 */
public class LoanProduct extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 产品id */
    private Long id;

    /** 1抵押2信用3担保 */
    @Excel(name = "1抵押2信用3担保")
    private Long kind;

    /** 期数id */
    @Excel(name = "期数id")
    private Long periods;

    /** 利率 */
    @Excel(name = "利率")
    private BigDecimal interestrate;

    /** 手续费 */
    @Excel(name = "手续费")
    private BigDecimal procedure1;

    /** 最小额度 */
    @Excel(name = "最小额度")
    private BigDecimal minquota;

    /** 最大额度 */
    @Excel(name = "最大额度")
    private BigDecimal maxquota;

    /** 放款时间设定（5分钟，2小时，12小时，24小时） */
    @Excel(name = "放款时间设定", readConverterExp = "5=分钟，2小时，12小时，24小时")
    private Long lendingtime;

    /** 逾期还款（罚息  30-50%），按日息计算 */
    @Excel(name = "逾期还款", readConverterExp = "罚=息,3=0-50%")
    private BigDecimal overdue;

    /** 提前还款 */
    @Excel(name = "提前还款")
    private BigDecimal inadvance;

    /** 提前还款违约金比例1% */
    @Excel(name = "提前还款违约金比例1%")
    private BigDecimal penalsum;

    /** 还款方式多选（1、等额本金，2、等额本息） */
    @Excel(name = "还款方式多选", readConverterExp = "1=、等额本金，2、等额本息")
    private Long manner;

    /** 创建日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date newtime;

    /** 是否发布 */
    @Excel(name = "是否发布")
    private Long state;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setKind(Long kind) 
    {
        this.kind = kind;
    }

    public Long getKind() 
    {
        return kind;
    }
    public void setPeriods(Long periods) 
    {
        this.periods = periods;
    }

    public Long getPeriods() 
    {
        return periods;
    }
    public void setInterestrate(BigDecimal interestrate) 
    {
        this.interestrate = interestrate;
    }

    public BigDecimal getInterestrate() 
    {
        return interestrate;
    }
    public void setProcedure1(BigDecimal procedure1) 
    {
        this.procedure1 = procedure1;
    }

    public BigDecimal getProcedure1() 
    {
        return procedure1;
    }
    public void setMinquota(BigDecimal minquota) 
    {
        this.minquota = minquota;
    }

    public BigDecimal getMinquota() 
    {
        return minquota;
    }
    public void setMaxquota(BigDecimal maxquota) 
    {
        this.maxquota = maxquota;
    }

    public BigDecimal getMaxquota() 
    {
        return maxquota;
    }
    public void setLendingtime(Long lendingtime) 
    {
        this.lendingtime = lendingtime;
    }

    public Long getLendingtime() 
    {
        return lendingtime;
    }
    public void setOverdue(BigDecimal overdue) 
    {
        this.overdue = overdue;
    }

    public BigDecimal getOverdue() 
    {
        return overdue;
    }
    public void setInadvance(BigDecimal inadvance) 
    {
        this.inadvance = inadvance;
    }

    public BigDecimal getInadvance() 
    {
        return inadvance;
    }
    public void setPenalsum(BigDecimal penalsum) 
    {
        this.penalsum = penalsum;
    }

    public BigDecimal getPenalsum() 
    {
        return penalsum;
    }
    public void setManner(Long manner) 
    {
        this.manner = manner;
    }

    public Long getManner() 
    {
        return manner;
    }
    public void setNewtime(Date newtime) 
    {
        this.newtime = newtime;
    }

    public Date getNewtime() 
    {
        return newtime;
    }
    public void setState(Long state) 
    {
        this.state = state;
    }

    public Long getState() 
    {
        return state;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("kind", getKind())
            .append("periods", getPeriods())
            .append("interestrate", getInterestrate())
            .append("procedure1", getProcedure1())
            .append("minquota", getMinquota())
            .append("maxquota", getMaxquota())
            .append("lendingtime", getLendingtime())
            .append("overdue", getOverdue())
            .append("inadvance", getInadvance())
            .append("penalsum", getPenalsum())
            .append("manner", getManner())
            .append("newtime", getNewtime())
            .append("state", getState())
            .toString();
    }
}
